#! /bin/sh
# PCP QA Test No. 377
# Prototype bit-field swizzling for endian support
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard filters
. ./common.product
. ./common.filter
. ./common.check

if [ -f $PCP_INC_DIR/config.h ]
then
    defs=$PCP_INC_DIR/config.h
else
    _notrun "No $PCP_INC_DIR headers found"
fi

# HAVE_64BIT_LONG should be in config{sz,64}.h, *not* here:
grep '#define HAVE_64BIT_LONG' $defs >/dev/null 2>&1 && \
    _fail "HAVE_64BIT_LONG is defined in $defs"

# PM_SIZEOF macros should be in config{sz,64}.h, *not* here:
# ... with a couple of notable exceptions
#
grep '#define PM_SIZEOF' $defs | grep -v '#define PM_SIZEOF_TIME_T' | grep -v '#define PM_SIZEOF_SUSECONDS_T' >/dev/null 2>&1 && \
    _fail "PM_SIZEOF macro(s) defined in $defs"

grep '#define HAVE_BITFIELDS_LTOR' $defs >/dev/null 2>&1 || \
    _notrun "HAVE_BITFIELDS_LTOR is false"

status=1	# failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15

# real QA test starts here
echo "=== read external format ==="
src/read-bf <src/sgi.bf

echo
echo "=== write external format ==="
src/write-bf >$tmp.out
cmp src/sgi.bf $tmp.out

# success, all done
status=0
exit
